package day0401;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class MaxTaskNumber {
    /**
     * 题目描述: 贪心
     * 在某个项目中有多个任务(用tasks数组表示)需要您进行处理，其中tasks[i]=[si,ei],
     * <p>
     * 你可以在si <= day <= ei 中的任意一天处理该任务，请返回你可以处理的最大任务数
     * <p>
     * 输入描述
     * 第一行为任务数量n，1 <=n<= 100000。
     * <p>
     * 后面n行表示各个任务的开始时间和终止时间，使用si,ei表示,1 <= si <= ei <= 100000
     * <p>
     * 输出描述
     * 输出为一个整数，表示可以处理的最大任务数。
     * <p>
     * 示例1
     * 输入：
     * 3
     * 1 1
     * 1 2
     * 1 3
     * 输出 3
     * <p>
     * 1  3
     * 2  3
     * 3  3
     * 1  4
     * 输出4
     * <p>
     * 1 3  3
     * 2 3  2
     * 3 4  2
     * 1 4  4
     * 输出 4
     * <p>
     * 作者：code5bug
     * 链接：https://www.nowcoder.com/?type=11002_0
     * 来源：牛客网
     * <p>
     * -->可以推出一天只能完成一个任务
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());// 任务数，天数
        int[][] arr = new int[n][3];
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < n; i++) {
            String[] s = sc.nextLine().split(" ");
            arr[i][0] = Integer.parseInt(s[0]);
            arr[i][1] = Integer.parseInt(s[1]);
            arr[i][2] = arr[i][1] - arr[i][0] + 1;// 第三个放的是天数
            max = Math.max(max, arr[i][1]);
        }
        Arrays.sort(arr, Comparator.comparingInt(o -> o[2]));// 对第三个排序
        boolean[] allDay = new boolean[max + 1];
        for (int i = 0; i < arr.length; i++) {
            for (int j = arr[i][0]; j <= arr[i][1]; j++) {
                if (!allDay[j]) {
                    allDay[j] = true;
                    break;
                }
            }
        }
        int res = 0;
        for (int i = 0; i < max + 1; i++) {
            if (allDay[i]) {
                res++;
            }
        }
        System.out.println(res);
    }
}

